package org.abacus.platform.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Grouper<T> {
	Map<T, List<Groupable<T>>> grouped = new HashMap<T, List<Groupable<T>>>();

	public Map<T, List<Groupable<T>>> grouping(List<Groupable<T>> arg0) {
		for (Groupable<T> a : arg0) {
			grouping(a);
		}
		return grouped;
	}

	private void grouping(Groupable<T> a) {
		List<Groupable<T>> o = grouped.get(a.groupValue());
		if (null == o) {
			o = new ArrayList<Groupable<T>>();
		}
		o.add(a);
		grouped.put(a.groupValue(), o);
	}
}
